package board;

import java.util.Set;
import engine.Move;

public interface Game<E> {

	/**
	 * Skips current player's turn by
	 * <ul>
	 * <li>discard the player's hand</li>
	 * <li>gives 5 pieces to player</li>
	 * </ul>
	 * @return The set of pieces that player will have at the end this turn.
	 */
	public Set<Piece> skipTurn();
	
	/**
	 * Current player loses game.
	 */
	public void forfeit();
	
	/**
	 * Given a Move <b>move</b>
	 * @param move
	 * @return Player's score based on move
	 */
	public E submitPlay(Move move);
}
